CPP = g++
CPPFLAGS = -Wall -Wextra -std=c++98 -pedantic -pedantic-errors -O0 -g
LDFLAGS = -lm
BINS = testArreglo testConj testConjAcotado testDicc testLista testVector testDiccTrie testDiccAcotado testMultconjAcotado testTablero testJuego
#BINS = testArreglo testConj testConjAcotado testDicc testLista testVector testDiccTrie testDiccAcotado testMultconjAcotado testTablero

.phony: all clean

all: $(BINS)

testArreglo: test/test.h test/testArreglo.cpp aed2/aed2.h test.o
	$(CPP) $(CPPFLAGS) $(LDFLAGS) test/testArreglo.cpp test.o -o ./testArreglo

testConj: test/test.h test/testConj.cpp aed2/aed2.h test.o
	$(CPP) $(CPPFLAGS) $(LDFLAGS) test/testConj.cpp test.o -o ./testConj

testConjAcotado: test/test.h test/testConjAcotado.cpp aed2/aed2.h conjAcotado.o test.o
	$(CPP) $(CPPFLAGS) $(LDFLAGS) test/testConjAcotado.cpp conjAcotado.o test.o -o ./testConjAcotado

testDicc: test/test.h test/testDicc.cpp aed2/aed2.h test.o
	$(CPP) $(CPPFLAGS) $(LDFLAGS) test/testDicc.cpp test.o -o ./testDicc

testLista: test/test.h test/testLista.cpp aed2/aed2.h test.o
	$(CPP) $(CPPFLAGS) $(LDFLAGS) test/testLista.cpp test.o -o ./testLista

testVector: test/test.h test/testVector.cpp aed2/aed2.h test.o
	$(CPP) $(CPPFLAGS) $(LDFLAGS) test/testVector.cpp test.o -o ./testVector

testTablero: test/test.h test/testTablero.cpp aed2/aed2.h test.o src/tablero.h conjAcotado.o src/diccAcotado.h
	$(CPP) $(CPPFLAGS) $(LDFLAGS) test/testTablero.cpp test.o conjAcotado.o -o ./testTablero
	
testJuego: juego.o conjAcotado.o test/test.h test/testJuego.cpp aed2/aed2.h test.o src/tablero.h src/diccAcotado.h multconjAcotado.o
	$(CPP) $(CPPFLAGS) $(LDFLAGS) test/testJuego.cpp test.o juego.o conjAcotado.o multconjAcotado.o -o ./testJuego
	
testDiccAcotado: test/test.h test/testDiccAcotado.cpp aed2/aed2.h test.o
	$(CPP) $(CPPFLAGS) $(LDFLAGS) test/testDiccAcotado.cpp conjAcotado.o test.o -o ./testDiccAcotado
	
testDiccTrie: test/test.h test/testDiccTrie.cpp src/diccTrie.h test.o
	$(CPP) $(CPPFLAGS) $(LDFLAGS) test/testDiccTrie.cpp test.o -o ./testDiccTrie
	
testMultconjAcotado: test/test.h test/testMultconjAcotado.cpp aed2/aed2.h test.o multconjAcotado.o
	$(CPP) $(CPPFLAGS) $(LDFLAGS) test/testMultconjAcotado.cpp test.o multconjAcotado.o -o ./testMultconjAcotado
	
conjAcotado.o: aed2/ConjAcotado.cpp aed2/ConjAcotado.h
	$(CPP) $(CPPFLAGS) -c aed2/ConjAcotado.cpp -o ./conjAcotado.o

test.o: test/test.cpp test/test.h
	$(CPP) $(CPPFLAGS) -c test/test.cpp -o ./test.o

juego.o: src/juego.cpp src/juego.h src/tablero.h src/diccTrie.h src/diccAcotado.h src/multconjAcotado.h
	$(CPP) $(CPPFLAGS) -c src/juego.cpp -o ./juego.o
	
multconjAcotado.o: src/multconjAcotado.cpp src/multconjAcotado.h src/diccAcotado.h
	$(CPP) $(CPPFLAGS) -c src/multconjAcotado.cpp -o ./multconjAcotado.o

clean:
	rm -rf *.o $(BINS)
